import _ from './utils/lodash.min';
export default class Pipe{
    init(game){
        //获取 canvas属性
        this.game = game;
        this.ctx = game.ctx;
        this.ctxW = this.ctx.canvas.width;
        this.ctxH = this.ctx.canvas.height;
        // 方向：0-up 1-down
        this.dir = _.random(0,1); //0-1随机数
        // 宽度
        this.w = 148;
        // 高度
        this.h = _.random(200,this.ctxH/2);
        // 速度
        this.speed = 3;
        // x轴
        this.x = this.ctxW;
        // y轴 
        this.y = this.dir===1?0:(this.ctxH-this.h-48);
        // 管道积分增加控制
        this.pipeScope = false;
    }
    render(){
        
        if(this.dir===1){
            // img:规定要使用的图像 ,
            // sx:开始剪切的 x 坐标位置，  sy:开始剪切的 y 坐标位置 ,
            // swidth:被剪切图像的宽度，sheight:被剪切图像的高度,
            // x:在画布上放置图像的 x 坐标位置，Y:在画布上放置图像的 y 坐标位置。
            // width:要使用的图像的宽度 ， height:要使用的图像的高度
            this.ctx.drawImage(this.game.images.pipe1,0,1664-this.h,this.w,this.h,this.x,this.y,this.w,this.h);
        }else{
            this.ctx.drawImage(this.game.images.pipe0,0,0,this.w,this.h,this.x,this.y,this.w,this.h);
        }
    }
    update(){
        this.x -= this.speed;
        // 当移动的位置小于屏幕超出自身宽度，管道数组移除第一个
        if(this.x<=this.w*-1){
            // 创建一个剔除所有给定值的新数组
            this.game.pipeArray = _.without(this.game.pipeArray,this);
        }
        // 小鸟碰撞检测
        if(this.game.bird.x>=this.x-this.game.bird.w && this.game.bird.x < this.x + this.w){
            if(this.dir===0){
                if(this.game.bird.y>this.game.height-this.h-this.game.bird.h){
                    this.game.pause();
                }
            }else if(this.dir===1){
                if(this.game.bird.y<this.h){
                    this.game.pause();
                }
            }
        }
        // 积分+1
        if(this.game.bird.x>this.x+this.w){
            if(!this.pipeScope){
                this.game.scope.add()
                this.pipeScope = true;
            }

        }
    }
    pause(){
        this.speed = 0;
    }
    
}